<html>
	<head>
		<title>runtime</title>
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
		<meta name="viewport" content="width=device-width initial-scale=1">
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<meta http-equiv="Content-Language" content="en-gb">

<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
		
	</head>
	<body class="commentary-font">
		<nav role="navigation">
		<h1><a href="../index.html"><img src="../docs-assets/Inform.png" height=72> </a></h1>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
<li><a href="../inform7n.html">inform7</a></li>
<li><a href="../intern.html">inter</a></li>
<li><a href="../services.html">services</a></li>
<li><a href="../secrets.html">secrets</a></li>
</ul><h2>Other Tools</h2><ul>
<li><a href="../inblorbn.html">inblorb</a></li>
<li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li>
</ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=0> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="https://github.com/ganelson/inweb"><img src="../docs-assets/github.png" height=0> inweb</a></li>
<li><a href="https://github.com/ganelson/intest"><img src="../docs-assets/github.png" height=0> intest</a></li>
</ul>
		</nav>
		<main role="main">
		<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../inform7n.html">Inform7</a></li><li><b>runtime</b></li></ul>
		<p class="purpose">Generating runtime support code for resources needed in Inform texts. This is version 1.</p>
		<hr>
		<div class="contentspage">
			<ul class="chapterlist">
				<li>
					<p class="chapterentry"><a name="P"></a>
						<span class="chaptertitle">Preliminaries</span></p>
					<ul class="sectionlist">
						<li>
							<p class="sectionentry"><a href="P-wtmd.html">
								<spon class="sectiontitle">What This Module Does</span></a> -
							<span class="sectionpurpose">An overview of the runtime module's role and abilities.</span></p>
						</li>
					</ul>
				</li>
				<li>
					<p class="chapterentry"><a name="1"></a>
						<span class="chaptertitle">Chapter 1: Configuration and Control</span></p>
					<ul class="sectionlist">
						<li>
							<p class="sectionentry"><a href="1-rm.html">
								<spon class="sectiontitle">Runtime Module</span></a> -
							<span class="sectionpurpose">Setting up the use of this module.</span></p>
						</li>
					</ul>
				</li>
				<li>
					<p class="chapterentry"><a name="2"></a>
						<span class="chaptertitle">Chapter 2: Emission</span></p>
					<ul class="sectionlist">
						<li>
							<p class="sectionentry"><a href="2-hrr.html">
								<spon class="sectiontitle">Hierarchy</span></a> -
							<span class="sectionpurpose">To provide an enforced structure and set of naming conventions for packages and names in the Inter code we generate.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-ni.html">
								<spon class="sectiontitle">Noun Identifiers</span></a> -
							<span class="sectionpurpose">Instances and kinds are both referred to by nouns, and here we create corresponding inames for use in compiled Inter code, and identifiers for use in the index.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-cu.html">
								<spon class="sectiontitle">Compilation Units</span></a> -
							<span class="sectionpurpose">The source text is divided into compilation units, and the material they lead to is similarly divided up.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-emt.html">
								<spon class="sectiontitle">Emit</span></a> -
							<span class="sectionpurpose">"Emitting" is the process of generating Inter bytecode, and this section provides a comprehensive API for the runtime and imperative modules to do that.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-ec.html">
								<spon class="sectiontitle">Emit Code</span></a> -
							<span class="sectionpurpose">Here is how bytecode for instructions inside functions is emitted.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-ea.html">
								<spon class="sectiontitle">Emit Arrays</span></a> -
							<span class="sectionpurpose">Here is how bytecode to create ready-initialised arrays of Inter data is emitted.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-int.html">
								<spon class="sectiontitle">Interventions</span></a> -
							<span class="sectionpurpose">Material written in low-level Inform 6 notation can be emitted for later linking, a distasteful process called "intervening".</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-sv.html">
								<spon class="sectiontitle">Shared Variables</span></a> -
							<span class="sectionpurpose">Functions to create sets of shared variables.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-th.html">
								<spon class="sectiontitle">The Heap</span></a> -
							<span class="sectionpurpose">Texts, lists and other flexibly-sized structures make use of a pool of run-time storage called "the heap".</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-dv.html">
								<spon class="sectiontitle">Default Values</span></a> -
							<span class="sectionpurpose">An unusual feature of Inform is that every kind has a default value, so that it is impossible for any variable or property to be uninitialised.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-es.html">
								<spon class="sectiontitle">Equality Schemas</span></a> -
							<span class="sectionpurpose">To define how to compile a comparison of two values.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-ic.html">
								<spon class="sectiontitle">Instance Counting</span></a> -
							<span class="sectionpurpose">Though a feature, for convenience of implementation, this code is always active and provides for efficient loops through instances at runtime.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-kd.html">
								<spon class="sectiontitle">Kind Declarations</span></a> -
							<span class="sectionpurpose">Each different kind used anywhere in the tree must be declared with an Inter kind declaration.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-sc.html">
								<spon class="sectiontitle">Showme Command</span></a> -
							<span class="sectionpurpose">A feature to provide some support for the SHOWME testing command.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-hnae.html">
								<spon class="sectiontitle">Here, Nowhere and Everywhere</span></a> -
							<span class="sectionpurpose">Almost a Beatles song, but really a set of schemas for compiling the meaning of the unary predicates here, nowhere and everywhere.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-sn.html">
								<spon class="sectiontitle">Short Names</span></a> -
							<span class="sectionpurpose">To compile the "short name" and "capitalised short name" properties.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-gpr.html">
								<spon class="sectiontitle">General Parsing Routines</span></a> -
							<span class="sectionpurpose">To compile "general parsing routines", or GPRs, which are runtime functions used to match noun phrases in the command parser.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="2-ie.html">
								<spon class="sectiontitle">Index Extensions</span></a> -
							<span class="sectionpurpose">To keep details of the extensions currently loaded, their authors, titles, versions and rubrics, and to index and credit them suitably.</span></p>
						</li>
					</ul>
				</li>
				<li>
					<p class="chapterentry"><a name="3"></a>
						<span class="chaptertitle">Chapter 3: Basics</span></p>
					<ul class="sectionlist">
						<li>
							<p class="sectionentry"><a href="3-gm.html">
								<spon class="sectiontitle">Generic Module</span></a> -
							<span class="sectionpurpose">A variety of Inter constants which do not depend on the content of the program.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="3-cm.html">
								<spon class="sectiontitle">Completion Module</span></a> -
							<span class="sectionpurpose">The completion module contains material turning the collection of resources into a playable work.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="3-uo.html">
								<spon class="sectiontitle">Use Options</span></a> -
							<span class="sectionpurpose">To give use options a presence at run-time.</span></p>
						</li>
					</ul>
				</li>
				<li>
					<p class="chapterentry"><a name="4"></a>
						<span class="chaptertitle">Chapter 4: Enclosed Resources</span></p>
					<ul class="sectionlist">
						<li>
							<p class="sectionentry"><a href="4-enc.html">
								<spon class="sectiontitle">Enclosures</span></a> -
							<span class="sectionpurpose">Packages which contain all the resources any of their subpackages will need are called "enclosures".</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-ll.html">
								<spon class="sectiontitle">List Literals</span></a> -
							<span class="sectionpurpose">Each enclosure contains the literal lists needed by its functions.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-tl.html">
								<spon class="sectiontitle">Text Literals</span></a> -
							<span class="sectionpurpose">In this section we compile text constants.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-ts.html">
								<spon class="sectiontitle">Text Substitutions</span></a> -
							<span class="sectionpurpose">In this section we compile text with substitutions.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-rsp.html">
								<spon class="sectiontitle">Responses</span></a> -
							<span class="sectionpurpose">In this section we keep track of response texts.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-bq.html">
								<spon class="sectiontitle">Box Quotations</span></a> -
							<span class="sectionpurpose">In this section we compile text constants.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-rl.html">
								<spon class="sectiontitle">Relation Literals</span></a> -
							<span class="sectionpurpose">In fact there is only one literal relation: the empty one, used as a default value.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-sal.html">
								<spon class="sectiontitle">Stored Action Literals</span></a> -
							<span class="sectionpurpose">Explicit actions stored in memory as literals.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-vnl.html">
								<spon class="sectiontitle">Version Number Literals</span></a> -
							<span class="sectionpurpose">Explicit actions stored in memory as literals.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-gt.html">
								<spon class="sectiontitle">Group Together</span></a> -
							<span class="sectionpurpose">The "group together" phrase in the Standard Rules needs support functions, which are compiled within the user's enclosure.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="4-los.html">
								<spon class="sectiontitle">Looping Over Scope</span></a> -
							<span class="sectionpurpose">To compile functions which implement conditions such as "in the presence of Mrs Dalloway".</span></p>
						</li>
					</ul>
				</li>
				<li>
					<p class="chapterentry"><a name="5"></a>
						<span class="chaptertitle">Chapter 5: Provision Submodules</span></p>
					<ul class="sectionlist">
						<li>
							<p class="sectionentry"><a href="5-act.html">
								<spon class="sectiontitle">Activities</span></a> -
							<span class="sectionpurpose">To compile the activities submodule for a compilation unit, which contains _activity packages.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-adj.html">
								<spon class="sectiontitle">Adjectives</span></a> -
							<span class="sectionpurpose">To compile the adjectives submodule for a compilation unit, which contains _adjective, _adjective_phrase and _measurement packages.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-chr.html">
								<spon class="sectiontitle">Chronology</span></a> -
							<span class="sectionpurpose">To compile the chronology submodule for a compilation unit, which contains _past_condition and _action_history_condition packages.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-cnj.html">
								<spon class="sectiontitle">Conjugations</span></a> -
							<span class="sectionpurpose">To compile the conjugations submodule for a compilation unit, which contains _verb, _modal_verb and _verb_form packages.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-eqt.html">
								<spon class="sectiontitle">Equations</span></a> -
							<span class="sectionpurpose">To compile the equations submodule for a compilation unit, which contains _equation packages.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-ins.html">
								<spon class="sectiontitle">Instances</span></a> -
							<span class="sectionpurpose">To compile the instances submodule for a compilation unit, which contains _instance packages.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-bi.html">
								<spon class="sectiontitle">Backdrop Instances</span></a> -
							<span class="sectionpurpose">Some additions to an _instance package for instances of the kind "backdrop".</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-di.html">
								<spon class="sectiontitle">Door Instances</span></a> -
							<span class="sectionpurpose">Property values for two-sided doors to make them interconnect with the map at runtime.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-ri.html">
								<spon class="sectiontitle">Region Instances</span></a> -
							<span class="sectionpurpose">Some additions to an _instance package for instances of the kind "region".</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-si.html">
								<spon class="sectiontitle">Scene Instances</span></a> -
							<span class="sectionpurpose">Some additions to an _instance package for instances of the kind "backdrop".</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-mlt.html">
								<spon class="sectiontitle">Multimedia</span></a> -
							<span class="sectionpurpose">To compile the multimedia submodule for a compilation unit, which contains _external_file, _figure and _sound packages.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-tbl.html">
								<spon class="sectiontitle">Tables</span></a> -
							<span class="sectionpurpose">To compile the tables submodule for a compilation unit, which contains _table packages containing _table_column_usage subpackages.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-tc.html">
								<spon class="sectiontitle">Table Columns</span></a> -
							<span class="sectionpurpose">To compile the table_columns submodule for a compilation unit, which contains _table_column packages.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-dbi.html">
								<spon class="sectiontitle">Dialogue Beat Instances</span></a> -
							<span class="sectionpurpose">To compile any dialogue details in the instances submodule.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-dli.html">
								<spon class="sectiontitle">Dialogue Line Instances</span></a> -
							<span class="sectionpurpose">To compile any dialogue details in the instances submodule.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-dci.html">
								<spon class="sectiontitle">Dialogue Choice Instances</span></a> -
							<span class="sectionpurpose">To compile any dialogue details in the instances submodule.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-rls.html">
								<spon class="sectiontitle">Rules</span></a> -
							<span class="sectionpurpose">To compile the rules submodule for a compilation unit, which contains _rule packages.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-rlb.html">
								<spon class="sectiontitle">Rulebooks</span></a> -
							<span class="sectionpurpose">To compile the rulebooks submodule for a compilation unit, which contains _rulebook and _outcome packages.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-vrb.html">
								<spon class="sectiontitle">Variables</span></a> -
							<span class="sectionpurpose">To compile the variables submodule for a compilation unit, which contains _variable packages.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-prp.html">
								<spon class="sectiontitle">Properties</span></a> -
							<span class="sectionpurpose">To compile the properties submodule for a compilation unit, which contains _property packages.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-rlt.html">
								<spon class="sectiontitle">Relations</span></a> -
							<span class="sectionpurpose">To compile the relations submodule for a compilation unit, which contains _relation packages.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-lp.html">
								<spon class="sectiontitle">Literal Patterns</span></a> -
							<span class="sectionpurpose">Compiled code to print and parse values expressed as literals.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-kc.html">
								<spon class="sectiontitle">Kind Constructors</span></a> -
							<span class="sectionpurpose">Each kind constructor has an Inter package of resources.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-ki.html">
								<spon class="sectiontitle">Kind IDs</span></a> -
							<span class="sectionpurpose">To compile the equations submodule for a compilation unit, which contains _equation packages.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-act2.html">
								<spon class="sectiontitle">Actions</span></a> -
							<span class="sectionpurpose">To compile the actions submodule for a compilation unit, which contains _action packages.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-nap.html">
								<spon class="sectiontitle">Named Action Patterns</span></a> -
							<span class="sectionpurpose">To compile the named_action_patterns submodule for a compilation unit, which contains _named_action_pattern packages.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="5-ts.html">
								<spon class="sectiontitle">Test Scripts</span></a> -
							<span class="sectionpurpose">To compile the tests submodule for a compilation unit, which contains _test packages.</span></p>
						</li>
					</ul>
				</li>
				<li>
					<p class="chapterentry"><a name="6"></a>
						<span class="chaptertitle">Chapter 6: Completion Resources</span></p>
					<ul class="sectionlist">
						<li>
							<p class="sectionentry"><a href="6-bd.html">
								<spon class="sectiontitle">Bibliographic Data</span></a> -
							<span class="sectionpurpose">Recording bibliographic data, such as title and authorship, in Inter.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="6-tp.html">
								<spon class="sectiontitle">The Player</span></a> -
							<span class="sectionpurpose">Providing for the player and her initial situation, that is, at the start of play.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="6-tm.html">
								<spon class="sectiontitle">The Map</span></a> -
							<span class="sectionpurpose">The runtime representation of the spatial map for works of interactive fiction: that is, how the rooms and doors connect up.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="6-pp.html">
								<spon class="sectiontitle">Property Permissions</span></a> -
							<span class="sectionpurpose">Each property needs permission to be used, and here we emit the Inter statements necessary.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="6-pv.html">
								<spon class="sectiontitle">Property Values</span></a> -
							<span class="sectionpurpose">Compiling Inter property value instructions for the properties of instances and kinds.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="6-abp.html">
								<spon class="sectiontitle">Action Bitmap Property</span></a> -
							<span class="sectionpurpose">To compile tiny arrays as values of the action_bitmap property.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="6-pi.html">
								<spon class="sectiontitle">Phrasebook Index</span></a> -
							<span class="sectionpurpose">Compiling what amounts to the Phrasebook index into the Inter hierarchy.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="6-mh.html">
								<spon class="sectiontitle">Mapping Hints</span></a> -
							<span class="sectionpurpose">To transcribe mapping hints for the World Index into suitable packages.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="6-inf.html">
								<spon class="sectiontitle">Inferences</span></a> -
							<span class="sectionpurpose">To index inferences.</span></p>
						</li>
					</ul>
				</li>
				<li>
					<p class="chapterentry"><a name="7"></a>
						<span class="chaptertitle">Chapter 7: Command Grammar</span></p>
					<ul class="sectionlist">
						<li>
							<p class="sectionentry"><a href="7-cg.html">
								<spon class="sectiontitle">Command Grammars</span></a> -
							<span class="sectionpurpose">Runtime support for CGs.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="7-cgl.html">
								<spon class="sectiontitle">Command Grammar Lines</span></a> -
							<span class="sectionpurpose">Compiling lines of command parser grammar.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="7-cgt.html">
								<spon class="sectiontitle">Command Grammar Tokens</span></a> -
							<span class="sectionpurpose">Compiling single command parser tokens.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="7-kg.html">
								<spon class="sectiontitle">Kind GPRs</span></a> -
							<span class="sectionpurpose">General parsing routine (GPR) functions to match values of non-object kinds in the command parser.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="7-nft.html">
								<spon class="sectiontitle">Noun Filter Tokens</span></a> -
							<span class="sectionpurpose">General parsing routine (GPR) functions to match objects which fit some description, or have some scoping requirement.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="7-np.html">
								<spon class="sectiontitle">Name Properties</span></a> -
							<span class="sectionpurpose">Small arrays of dictionary words which are values of the name property for objects.</span></p>
						</li>
						<li>
							<p class="sectionentry"><a href="7-pnp.html">
								<spon class="sectiontitle">Parse Name Properties</span></a> -
							<span class="sectionpurpose">Functions which are values of the parse_name property for objects.</span></p>
						</li>
					</ul>
				</li>
			</ul>
		</div>
		<hr>
		<p class="purpose">Powered by <a href="https://github.com/ganelson/inweb">Inweb</a>.</p>
		</main>
	</body>
</html>

